#ifndef CPSIMULATOR_H
#define CPSIMULATOR_H

#include <TString.h>
#include <TNamed.h>
#include "CpVGenerator.h"
#include "CpVTransporter.h"

class CpSimulator : public TNamed {
public:
   CpSimulator(const char*name = "cpSim", const char *title = "Default Cp simulator");
   ~CpSimulator();

  void SetConfig(TString filename) { fConfigFileName = filename;}
  const char* GetConfigFileName() { return fConfigFileName.Data();}

	void SetGenerator(CpVGenerator *g) { fGenerator = g; }
	void SetTransporter(CpVTransporter *t) { fTransporter = t; }

	void ShowEvent();
	
	void Run(Long64_t nunParticles);
	
private:

   TString 				 fConfigFileName;

	CpVGenerator 		*fGenerator;
	CpVTransporter 	*fTransporter;

   ClassDef(CpSimulator, 1);
};

#endif

